//
// Copyright (c) 2009 All Right Reserved
//
// vl
//
// 2009-01-01
// Contains ...
using System.Diagnostics.Contracts;
using JetBrains.Annotations;
namespace LargoCommon.Music
{
///
/// Tone Packet.
///
public sealed class IntendedTone {
#region Public properties
///
/// Gets or sets the melodic tone.
///
///
/// The melodic tone.
///
[UsedImplicitly]
public MusicalTone MusicalTone { get; set; } //// CA1044 (FxCop)
///
/// Gets or sets a value indicating whether this instance is selected.
///
///
/// True if this instance is selected; otherwise, false.
///
public bool IsSelected { [UsedImplicitly] get; set; }
#endregion
#region Public properties - Computed Values
///
/// Gets or sets the harmonic cover value.
///
///
/// The harmonic cover value.
///
public int HarmonicCoverValue { [UsedImplicitly] get; set; }
///
/// Gets or sets the harmonic value.
///
///
/// The harmonic value.
///
public int HarmonicValue { [UsedImplicitly] get; set; }
///
/// Gets or sets the easy sing value.
///
///
/// The easy sing value.
///
public int EasySingValue { [UsedImplicitly] get; set; }
///
/// Gets or sets the free band value.
///
///
/// The free band value.
///
public int FreeBandValue { [UsedImplicitly] get; set; }
///
/// Gets or sets the impulse collisions value.
///
///
/// The impulse collisions value.
///
public int ImpulseCollisionsValue { [UsedImplicitly] get; set; }
///
/// Gets or sets the melodic collisions value.
///
///
/// The melodic collisions value.
///
public int MelodicCollisionsValue { [UsedImplicitly] get; set; }
///
/// Gets or sets the ambit change value.
///
///
/// The ambit change value.
///
public int AmbitChangeValue { [UsedImplicitly] get; set; }
///
/// Gets or sets the octave value.
///
///
/// The octave value.
///
public int OctaveValue { [UsedImplicitly] get; set; }
///
/// Gets or sets the min track value.
///
///
/// The min track value.
///
public int SequenceValue { [UsedImplicitly] get; set; }
///
/// Gets or sets the figural value.
///
///
/// The figural value.
///
public int FiguralValue { [UsedImplicitly] get; set; }
///
/// Gets or sets the variability value.
///
///
/// The variability value.
///
public int VariabilityValue { [UsedImplicitly] get; set; }
#endregion
#region Public properties
///
/// Gets or sets the line number.
///
/// Property description.
public int LineIndex { get; set; }
///
/// Gets the bar number.
///
/// Property description.
[UsedImplicitly]
public int BarNumber {
get {
Contract.Assume(this.MusicalTone != null);
return this.MusicalTone.BarNumber;
}
}
///
/// Gets the bit from.
///
/// Property description.
[UsedImplicitly]
public byte BitFrom {
get {
Contract.Requires(this.MusicalTone != null);
return this.MusicalTone.BitFrom;
}
}
///
/// Gets the duration.
///
/// Property description.
[UsedImplicitly]
public int Duration {
get {
Contract.Requires(this.MusicalTone != null);
return this.MusicalTone.Duration;
}
}
///
/// Gets the note.
///
/// Property description.
[UsedImplicitly]
public string Note {
get {
Contract.Requires(this.MusicalTone != null);
return this.MusicalTone.ToShortString();
}
}
///
/// Gets or sets the total formal value.
///
/// Property description.
public float TotalFormalValue { [UsedImplicitly] get; set; }
///
/// Gets or sets the total real value.
///
/// Property description.
public float TotalRealValue { [UsedImplicitly] get; set; }
///
/// Gets or sets the total value.
///
/// Property description.
[UsedImplicitly]
public float TotalValue { get; set; }
#endregion
}
}